#include "config.h"
+#include "gtkiconhelperprivate.h"
+
#include <math.h>
+
#include "gtkiconhelperprivate.h"
+#include "gtkstylecontextprivate.h"
struct _GtkIconHelperPrivate {
GtkImageType storage_type;
}
static GtkIconLookupFlags
-get_icon_lookup_flags (GtkIconHelper *self)
+get_icon_lookup_flags (GtkIconHelper *self, GtkStyleContext *context)
{
GtkIconLookupFlags flags = GTK_ICON_LOOKUP_USE_BUILTIN;
if (self->priv->pixel_size != -1)
flags |= GTK_ICON_LOOKUP_FORCE_SIZE;
+ flags |= _gtk_style_context_get_icon_lookup_flags (context);
+
return flags;
}
return;
icon_theme = gtk_icon_theme_get_default ();
- flags = get_icon_lookup_flags (self);
+ flags = get_icon_lookup_flags (self, context);
ensure_icon_size (self, context, &width, &height);
return;
icon_theme = gtk_icon_theme_get_default ();
- flags = get_icon_lookup_flags (self);
+ flags = get_icon_lookup_flags (self, context);
ensure_icon_size (self, context, &width, &height);
scale = get_scale_factor (self, context);
#include "gtkcsscolorvalueprivate.h"
#include "gtkcsscornervalueprivate.h"
#include "gtkcssenginevalueprivate.h"
+#include "gtkcssenumvalueprivate.h"
#include "gtkcssnumbervalueprivate.h"
#include "gtkcssrgbavalueprivate.h"
#include "gtkdebug.h"
return context->priv->invalidating_context;
}
+GtkIconLookupFlags
+_gtk_style_context_get_icon_lookup_flags (GtkStyleContext *context)
+{
+ GtkCssIconStyle icon_style;
+
+ g_return_val_if_fail (GTK_IS_STYLE_CONTEXT (context), 0);
+
+ icon_style = _gtk_css_icon_style_value_get (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_ICON_STYLE));
+
+ switch (icon_style)
+ {
+ case GTK_CSS_ICON_STYLE_REGULAR:
+ return GTK_ICON_LOOKUP_FORCE_REGULAR;
+ case GTK_CSS_ICON_STYLE_SYMBOLIC:
+ return GTK_ICON_LOOKUP_FORCE_SYMBOLIC;
+ case GTK_CSS_ICON_STYLE_REQUESTED:
+ return 0;
+ default:
+ g_assert_not_reached ();
+ return 0;
+ }
+}
+
static AtkAttributeSet *
add_attribute (AtkAttributeSet *attributes,
AtkTextAttribute attr,
#define __GTK_STYLE_CONTEXT_PRIVATE_H__
#include "gtkstylecontext.h"
+
+#include "gtkicontheme.h"
#include "gtkstyleproviderprivate.h"
#include "gtkbitmaskprivate.h"
#include "gtkcssvalueprivate.h"
void _gtk_style_context_update_animating (GtkStyleContext *context);
+GtkIconLookupFlags _gtk_style_context_get_icon_lookup_flags (GtkStyleContext *context);
+
G_END_DECLS
#endif /* __GTK_STYLE_CONTEXT_PRIVATE_H__ */